As a result of improvement in processing technology, it is now possible to put millions of transistors in an integrated circuit. This increases the amount of processing power of the integrated circuit. However, the processing power may be wasted if there are insufficient input-output (I/O) resources to transfer data to and from the integrated circuit. High speed I/O transceivers alleviate this problem by increasing the data transfer speed of the I/O resources.
One way to increase the speed of I/O is to build better circuits (e.g., phase detector, charge pumps, filters, oscillators, etc.). Another way is to use multiple transceivers working in parallel. For example, data words in a transmitter can be split into bytes, with each byte sent over a separate transceiver. The bytes are received in parallel by separate transceivers in a receiver. The received bytes are then combined in the correct sequence to recover the original words. In the present invention, the communication path of each transceiver pair (one in the transmitter and one in the receiver) is called a “channel”.
One of the problems of communication using parallel channels is that the data words may not be aligned properly when they reach the receiver. FIG. 1 is a drawing showing such as a situation. It shows four parallel buffers 112a-115a of a transmitter 102. Each buffer handles one byte of a four-byte word. For example, in order to transmit a full word contains bytes “SSSS”, the first “S” is handled by the first buffer, the second “S” is handled by the second buffer, etc. The arrows on top of the buffers indicate a transmission clock. FIG. 1 also shows the buffers of a receiver 104 that does not perform alignment. The arrows on top of the buffers indicate the sampling clock. It shows that the second buffer, 113b, is not aligned with the other buffers. One of the causes of the misalignment is variations in transmission delay, especially if the data streams are routed through repeaters. In this case, the received word will have the form “STSS”, which is not the same as the transmitted word. FIG. 1 also shows the buffers of a receiver 106 that is able to perform alignment. It shows that the sampling clock is able to properly associate with the correct data, and the correct word can be recovered. This alignment process is also called “channel bonding.”
One way to support correction of misalignment is to include in the data stream special byte sequences that define corresponding points in the several buffers. As illustration, it is assumed in FIG. 1 that the “P” bytes are special characters for this purpose. Each receiving transceiver recognizes the “P” character and remembers its location in the buffer. One transceiver will be designated as the master that instructs all the slave transceivers to align to the channel bonding character “P” (or to some location relative to the channel bonding character). After this operation, the words will be properly aligned: RRRR, SSSS, TTTT, etc.
A transceiver may also perform other operations, such as clock correction. These collective operations are commonly called “elastic buffer” operations.
It can be seen from above that channel bonding is an important tool for increasing the speed of a communication system. Consequently, it is desirable to improve the operation of channel bonding.